# Q. What is this file?
# A. This file contains options which allow you to configure your multiworld experience while allowing
#    others to play how they want as well.
#
# Q. How do I use it?
# A. The options in this file are weighted. This means the higher number you assign to a value, the
#    more chances you have for that option to be chosen. For example, an option like this:
#
#    map_shuffle:
#      on: 5
#      off: 15
#
#    Means you have 5 chances for map shuffle to occur, and 15 chances for map shuffle to be turned
#    off.
#
# Q. I've never seen a file like this before. What characters am I allowed to use?
# A. This is a .yaml file. You are allowed to use most characters.
#    To test if your yaml is valid or not, you can use this website:
#        http://www.yamllint.com/
#    You can also verify that your Archipelago options are valid at this site:
#        https://archipelago.gg/check

# Your name in-game, limited to 16 characters.
#     {player} will be replaced with the player's slot number.
#     {PLAYER} will be replaced with the player's slot number, if that slot number is greater than 1.
#     {number} will be replaced with the counter value of the name.
#     {NUMBER} will be replaced with the counter value of the name, if the counter value is greater than 1.
name: Player{number}

# Used to describe your yaml. Useful if you have multiple files.
description: Default Librarian Tidy Up the Arcane Library Template

game: Librarian Tidy Up the Arcane Library
requires:
  version: 0.6.7 # Version of Archipelago required for this yaml to work as expected.
  game:
    Librarian Tidy Up the Arcane Library: 2.0.3 # Version of the world required for this yaml to work as expected.

Librarian Tidy Up the Arcane Library:
  ################
  # Game Options #
  ################
  progression_balancing:
    # A system that can move progression earlier, to try and prevent the player from getting stuck and bored early.
    # 
    # A lower setting means more getting stuck. A higher setting means less getting stuck.
    #
    # You can define additional values between the minimum and maximum values.
    # Minimum value is 0
    # Maximum value is 99
    random: 0
    random-low: 0 # random value weighted towards lower values
    random-high: 0 # random value weighted towards higher values
    random-range-0-99: 0 # random value between 0 and 99
    disabled: 0 # equivalent to 0
    normal: 50 # equivalent to 50
    extreme: 0 # equivalent to 99

  accessibility:
    # Set rules for reachability of your items/locations.
    # 
    # **Full:** ensure everything can be reached and acquired.
    # 
    # **Minimal:** ensure what is needed to reach your goal can be acquired.
    full: 50
    minimal: 0

  goal:
    # How much of the library must be tidied to win.
    # 
    # full    -- Complete the whole library, both floors (default).
    # floor_1 -- Complete Floor 1 only (1A-1N); Floor 2 leaves the pool.
    # floor_2 -- Complete Floor 2 only (2A-2Q); Floor 1 leaves the pool.
    # custom  -- Win after a count you choose: custom_goal_row_count rows, or
    #            custom_goal_book_count books under booksanity. Works in all three
    #            unlock modes. The seed is trimmed to about what that goal needs, plus
    #            spare_book_item_percent slack -- sections past it leave the pool rather
    #            than sitting there holding items nobody will collect.
    # 
    # For booksanity, a floor or custom goal is recommended: the full goal has ~3072
    # book items and takes noticeably longer to generate.
    full: 50
    custom: 0
    floor_1: 0
    floor_2: 0

  unlock_mode:
    # Choose how book series are unlocked.
    # 
    # progressive_unlocks (default) -- series unlock in fungible groups: each
    #     Progressive Series Unlock item reveals series_per_unlock series, and
    #     bookcases unlock progressively. The classic, most compact item pool.
    # individual_series_unlocks -- every one of the ~400 series is its own unlock
    #     item. More granular and a larger pool; every bookcase starts open.
    # booksanity -- every individual book (~3072) is its own item AND its own check,
    #     the most granular option. Every bookcase starts open. A floor goal is
    #     recommended (the full goal is slow to generate at this size).
    progressive_unlocks: 50
    individual_series_unlocks: 0
    booksanity: 0

  custom_goal_row_count:
    # Rows needed to win when goal = custom. Ignored for every other goal.
    # 
    # Used by progressive_unlocks and individual_series_unlocks. In booksanity the
    # goal counts books instead, so custom_goal_book_count applies there and this is
    # ignored. Accepts 'random', 'random-low', 'random-high' in your yaml.
    #
    # You can define additional values between the minimum and maximum values.
    # Minimum value is 1
    # Maximum value is 400
    200: 50
    random: 0
    random-low: 0 # random value weighted towards lower values
    random-high: 0 # random value weighted towards higher values
    random-range-1-400: 0 # random value between 1 and 400

  custom_goal_book_count:
    # Books needed to win when goal = custom and unlock_mode = booksanity.
    # 
    # Ignored for every other goal and unlock mode -- the other two modes count rows,
    # via custom_goal_row_count. The library holds 3072 books across 400 rows, so a
    # row-shaped number here is a much shorter run than it looks; the default is about
    # half the library, which lands near the size of a floor goal. Accepts 'random',
    # 'random-low', 'random-high' in your yaml.
    #
    # You can define additional values between the minimum and maximum values.
    # Minimum value is 1
    # Maximum value is 3072
    1500: 50
    random: 0
    random-low: 0 # random value weighted towards lower values
    random-high: 0 # random value weighted towards higher values
    random-range-1-3072: 0 # random value between 1 and 3072

  spare_book_item_percent:
    # Spare Progressive Series Unlock copies, as a percentage, so you do not need
    # every one of them to finish.
    # 
    # On goal: custom it sets how much of the library the seed keeps past your goal.
    # A goal of 200 rows and 10% spare leads to at least 220 series in the pool.
    # A BookSanity goal of 1500 books and 10% spare has at least 1650 books in it.
    #
    # You can define additional values between the minimum and maximum values.
    # Minimum value is 0
    # Maximum value is 20
    10: 50
    random: 0
    random-low: 0 # random value weighted towards lower values
    random-high: 0 # random value weighted towards higher values
    random-range-0-20: 0 # random value between 0 and 20

  spare_shelf_items:
    # Spare Progressive Shelf Unlock copies, as a count per bookcase, so you do not
    # need every one of them to open a section.
    # 
    # Full and floor goals with progressive_unlocks. A seed with no room for the number
    # you pick uses fewer and says so during generation.
    #
    # You can define additional values between the minimum and maximum values.
    # Minimum value is 0
    # Maximum value is 3
    0: 50
    random: 0
    random-low: 0 # random value weighted towards lower values
    random-high: 0 # random value weighted towards higher values
    random-range-0-3: 0 # random value between 0 and 3

  starting_series_count:
    # How many series you begin with unlocked. Always includes at least one whose
    # row is on the starting bookcase, so your first check is available right away.
    # 
    # progressive_unlocks / individual_series_unlocks: that many series.
    # booksanity: that many series' worth of random books -- each count rolls a series
    # size (3, 5, or 10 volumes), so e.g. 5 starts you with roughly 15-50 random
    # individual books (not whole series).
    #
    # You can define additional values between the minimum and maximum values.
    # Minimum value is 5
    # Maximum value is 25
    10: 50
    random: 0
    random-low: 0 # random value weighted towards lower values
    random-high: 0 # random value weighted towards higher values
    random-range-5-25: 0 # random value between 5 and 25

  series_per_unlock:
    # How many series each Progressive Series Unlock reveals. Lower means more
    # unlocks with smaller impact; higher means fewer, bigger ones. (Below 3 makes a
    # long unlock chain that's hard to place in tight seeds, so 3 is the minimum.)
    # 
    # Only applies to the progressive_unlocks mode; ignored for
    # individual_series_unlocks and booksanity.
    #
    # You can define additional values between the minimum and maximum values.
    # Minimum value is 3
    # Maximum value is 10
    5: 50
    random: 0
    random-low: 0 # random value weighted towards lower values
    random-high: 0 # random value weighted towards higher values
    random-range-3-10: 0 # random value between 3 and 10

  book_visibility:
    # How books from locked series look before you unlock them.
    # 
    # hidden -- locked books are invisible and non-grabbable; the library fills in as
    #           you unlock series (default).
    # stacks -- locked books stay visible but non-grabbable -- you walk through them.
    #           Pick this for a full-looking library or to avoid any hide glitches.
    hidden: 50
    stacks: 0

  local_filler:
    # Keep this game's filler items in your own world.
    # 
    # On (default): Librarian filler fills your own locations instead of scattering
    # into other players' worlds; your meaningful items still circulate. Recommended,
    # since Librarian adds a lot of checks.
    # Off: filler is distributed across the multiworld like anything else.
    # Has no effect in a solo game.
    'false': 0
    'true': 50

  only_unward_shelfable_books:
    # Require both the series unlock AND its bookcase before a book is pickable.
    # 
    # On (default): a book stays hidden until its series and its bookcase are
    # both open.  Default option to avoid having to shuffle series around.
    # 
    # Off: books are unhidden and grabbable once they are sent to you. This means you
    # can place books on shelves 'out of order'.  This may lead you to need to
    # shelf a series and then replace it with a different series on the same
    # shelf in order to get all available checks.
    'false': 0
    'true': 50

  ###########################
  # Item & Location Options #
  ###########################
  local_items:
    # Forces these items to be in their native world.
    []

  non_local_items:
    # Forces these items to be outside their native world.
    []

  start_inventory:
    # Start with the specified amount of these items. Example: "Bomb: 1"
    {}

  start_hints:
    # Start with these item's locations prefilled into the ``!hint`` command.
    []

  start_location_hints:
    # Start with these locations and their item prefilled into the ``!hint`` command.
    []

  exclude_locations:
    # Prevent these locations from having an important item.
    []

  priority_locations:
    # Prevent these locations from having an unimportant item.
    []

  item_links:
    # Share part of your item pool with other players.
    []

  plando_items:
    # Generic items plando.
    []
